//
//  main.c
//  源码反码补码
//
//  Created by ws on 2017/7/19.
//  Copyright © 2017年 王松. All rights reserved.
//

#include <stdio.h>

/**
 正整数:源码 补码 反码 都一样
 有符号的正整数是0开头的
 正整数:第一位是符号位,正数的符号位是0
 一个正整数占四个字节 每个字节占8个bit 所以是32位的
 1 --> 0000 0000 0000 0000 0000 0000 0000 0001
 
 负数
 源码:就是转换成32位的二进制数 第一位是符号位
 反码:就是源码符号位不变,然后其他位取反(0变1 1变0)
 补码: 反码 + 1
 -1的源码: -1 --> 1000 0000 0000 0000 0000 0000 0000 0001
 反码:就是源码符号位不变,然后其他位取反(0变1 1变0)
 -1的反码: -1 --> 1111 1111 1111 1111 1111 1111 1111 1110
 补码: 反码 + 1
 -的补码: -1 --> 1111 1111 1111 1111 1111 1111 1111 1111
 计算机中存储的就是数字的补码
  计算机存储的-1就是 --> 1111 1111 1111 1111 1111 1111 1111 1111
 
 规律:在计算机中 负数的补码就是正数取反加1
 补码:
 正数13 --> 0000 0000 0000 0000 0000 0000 0000 1101
 负数13 --> 1111 1111 1111 1111 1111 1111 1111 0011
 */
int main(int argc, const char * argv[]) {
    printf("%d -- %d\n",0b00000000000000000000000000001101,0b11111111111111111111111111110011);
    return 0;
}
